﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace FreeDocFlow
{
    // ПРИМЕЧАНИЕ. Команду "Переименовать" в меню "Рефакторинг" можно использовать для одновременного изменения имени класса "Catalog" в коде, SVC-файле и файле конфигурации.
    public class Catalog : ICatalog
    {
        DbManager db = null;

        public Catalog()
        {
            db = DbManagerFactory.DbManager;
        }

        public List<TreeItemData> EnumerateChildren(long parent)
        {
            var result = new List<TreeItemData>();

            var reader = db.ExecuteReader("select id, name, type from Objects join Catalog on Objects.id = Catalog.child_id where parent_id=@id", db.CreateParameter("@id", parent));

            while (reader.Read())
            {
                var ti = new TreeItemData();
                ti.id = (long)reader[0];
                ti.name = (string)reader[1];
                ti.type = (int)reader[2];
                result.Add(ti);
            }

            reader.Close();

            return result;
        }
    }
}
